Euler spiral

A Euler spiral is a curve whose curvature changes linearly with its curve length (the curvature of a circular curve is equal to the reciprocal of the radius). Euler spirals are also commonly referred to as spiros, clothoids or Cornu spirals.

Euler spirals have applications to diffraction computations. They are also widely used as transition curve in railroad engineering/highway engineering for connecting and transiting the geometry between a tangent and a circular curve. The principle of linear variation of the curvature of the transition curve between a tangent and a circular curve defines the geometry of the Euler spiral:

Contents

Applications

Track transition curve

An object traveling on a circular path experiences a centripetal acceleration. When a vehicle traveling on a straight path approaches a circular path, it experiences a sudden centripetal acceleration starting at the tangent point; and thus centripetal force acts instantly causing much discomfort.

On early railroads this instant application of lateral force was not an issue since low speeds and wide-radius curves were employed (lateral forces on the passengers and the lateral sway was small and tolerable). As speeds of rail vehicles increased over the years, it became obvious that an easement is necessary so that the centripetal acceleration increases linearly with the traveled distance. Given the expression of centripetal acceleration V² / R, the obvious solution is to provide an easement curve whose curvature, 1 / R, increases linearly with the traveled distance. This geometry is an Euler spiral.

Unaware of the solution of the geometry by Leonhard Euler, Rankine cited the cubic curve (a polynomial curve of degree 3), which is an approximation of the Euler spiral for small angular changes in the same way that a parabola is an approximation to a circular curve.

Marie Alfred Cornu (and later some civil engineers) also solved the calculus of Euler spiral independently. Euler spirals are now widely used in rail and highway engineering for providing a transition or an easement between a tangent and a horizontal circular curve.

Optics

The Cornu spiral can be used to describe a diffraction pattern.[1]

Formulation

Symbols

R\, Radius of curvature
R_c\, Radius of Circular curve at the end of the spiral
\theta\, Angle of curve from beginning of spiral (infinite R) to a particular point on the spiral.
This can also be measured as the angle between the initial tangent and the tangent at the concerned point.
\theta _s\, Angle of full spiral curve
L , s\, Length measured along the spiral curve from its initial position
L_s , s_o\, Length of spiral curve

Derivation

The graph on the right illustrates an Euler spiral used as an easement (transition) curve between two given curves, in this case a straight line (the negative x axis) and a circle. The spiral starts at the origin in the positive x direction and gradually turns anticlockwise to osculate the circle.

The spiral is a small segment of the above double-end Euler spiral in the first quadrant.

From the definition of the curvature,
\frac {1}{R} = \frac {d\theta}{ds} \propto s
i.e.
R s = \text{constant} = R_c s_o\,
\frac {d\theta}{ds} = \frac {s}{R_c s_o}
We write in the format,
\frac {d\theta}{ds} = 2a^2 s
Where
2a^2= \frac {1}{R_c s_o}
Or
a = \frac {1}{\sqrt {2R_c s_o} }
Thus
\theta = (a s)^2\,
Now

\begin{align}
x & = \int_0^L \cos\theta \, ds \\
  & = \int_0^L \cos \left[ (a s)^2 \right] ds
\end{align}
If
s' = a s \,
Then
ds = \frac{ds'}{a}\,
Thus
x = \frac{1}{a} \int_0^{L'} \cos {s}^2 ds

\begin{align}
y & = \int_0^L \sin\theta \, ds \\
  & = \int_0^L \sin \left[ (a s)^2 \right] ds \\
  & = \frac{1}{a} \int_0^{L'} \sin {s}^2 \, ds 
\end{align}

Expansion of Fresnel integral

If a = 1, which is the case for normalized Euler curve, then the Cartesian coordinates are given by Fresnel integrals (or Euler integrals):

      C(L) =\int_0^L\cos s^2 \, ds
      S(L) = \int_0^L\sin s^2 \, ds

Expand C(L) according to power series expansion of cosine:

      \cos \theta = 1 - \frac{\theta^2}{2!} %2B \frac{\theta^4}{4!} - \frac{\theta^6}{6!} %2B \cdots
      C(L) = \int_0^L \cos s^2 \, ds
           = \int_0^L (1 - \frac{s^4}{2!} %2B \frac{s^8}{4!} - \frac{s^{12}}{6!} %2B \cdots) \,  ds
           = L - \frac{L^5}{5 \times 2!} %2B \frac{L^9}{9 \times 4!} - \frac{L^{13}}{13 \times 6!} %2B\cdots

Expand S(L) according to power series expansion of sine:

      \sin \theta = \theta - \frac{\theta^3}{3!} %2B \frac{\theta^5}{5!} - \frac{\theta^7}{7!} %2B \cdots
      S(L) = \int_0^L \sin s^2 \, ds
           = \int_0^L (s^2 - \frac{s^6}{3!} %2B \frac{s^{10}}{5!} - \frac{s^{14}}{7!} %2B \cdots) \,  ds
           = \frac{L^3}{3} - \frac{L^7}{7 \times 3!} %2B \frac{L^{11}}{11 \times 5!} - \frac{L^{15}}{15 \times 7!} %2B\cdots

Normalization and conclusion

For a given Euler curve with:

2RL = 2R_c L_s = \frac{1}{a^2} \,

or

\frac{1}{R} = \frac{L}{R_c L_s} = 2a^2L \,

then

x=\frac{1}{a} \int_0^{L'} \cos s^2 \, ds
y=\frac{1}{a} \int_0^{L'} \sin s^2 \, ds \,

where L' = aL \, and a = \frac{1}{\sqrt{2R_c L_s}}.

The process of obtaining solution of (x, y) of an Euler spiral can thus be described as:

In the normalization process,


\begin{align}
R'_c & = \frac{R_c}{\sqrt{2 R_c L_s}} \\
     & = \sqrt{\frac{R_c}{2L_s}} \\
\end{align}

\begin{align}
L'_s & = \frac{L_s}{\sqrt{2R_c L_s}} \\
     & = \sqrt{\frac{L_s}{2R_c}}
\end{align}

Then


\begin{align}
2R'_c L'_s & = 2 \sqrt{\frac{R_c}{2L_s} } \sqrt{\frac{L_s}{2 R_c}} \\
           & = \tfrac{2}{2} \\
           & = 1
\end{align}

Generally the normalization reduces L' to a small value (<1) and results in good converging characteristics of the Fresnel integral manageable with only a few terms (at a price of increased numerical instability of the calculation, esp. for bigger \theta\, values.).

Illustration

Given:


   \begin{align}
   R_c & = 300\mbox{m} \\
   L_s &= 100\mbox{m}
   \end{align}

Then


   \begin{align}
   \theta_s & = \frac{L_s} {2R_c} \\
       & = \frac{100} {2 \times 300} \\
       & = 0.1667 \ \mbox{radian} \\
    \end{align}

And

 2R_c L_s = 60,000 \,

We scale down the Euler spiral by √60,000, i.e.100√6 to normalized Euler spiral that has:


   \begin{align}
      R'_c = \tfrac{3}{\sqrt{6}}\mbox{m} \\
      L'_s = \tfrac{1}{\sqrt{6}}\mbox{m} \\
      \\
   \end{align}

   \begin{align}
   2R'_c L'_s & = 2 \times \tfrac{3}{\sqrt{6}} \times \tfrac{1}{\sqrt{6}} \\
              & = 1 
   \end{align}

And


   \begin{align}
    \theta_s & = \frac{L'_s}{2R'_c} \\
       & = \frac{\tfrac{1}{\sqrt{6}}} {2 \times \tfrac{3}{\sqrt{6}}} \\
       & = 0.1667 \ \mbox{radian} \\
   \end{align}

The two angles \theta_s\, are the same. This thus confirm that the original and normalized Euler spirals are having geometric similarity. The locus of the normalized curve can be determined from Fresnel Integral, while the locus of the original Euler spiral can be obtained by scaling back / up or denormalizing.

Other properties of normalized Euler spiral

Normalized Euler spiral can be expressed as:

x = \int_0^L \cos s^2 ds
y = \int_0^L \sin s^2 ds

Normalized Euler spiral has the following properties:

2 R_c L_s = 1 \,\!
\theta_s = \frac{L_s}{2 R_c} = L_s ^2

And

\theta = \theta _s\cdot\frac{L^2}{L_s^2} = L^2
\frac{1}{R} = \frac{d\theta}{dL} = 2L

Note that 2R_c L_s = 1 also means 1/R_c = 2L_s, in agreement with the last mathematical statement.

Code for producing an Euler spiral

The following Sage code produces the second graph above. The first four lines express the Euler spiral component. Fresnel functions could not be found. Instead, the integrals of two expanded Taylor series are adopted. The remaining code expresses respectively the tangent and the circle, including the computation for the center coordinates.

  var('L')
  p = integral(taylor(cos(L^2), L, 0, 12), L)
  q = integral(taylor(sin(L^2), L, 0, 12), L)
  r1 = parametric_plot([p, q], (L, 0, 1), color = 'red')
  
  r2 = line([(-1.0, 0), (0,0)], rgbcolor = 'blue')
  
  x1 = p.subs(L = 1)
  y1 = q.subs(L = 1)
  R = 0.5
  x2 = x1 - R*sin(1.0)
  y2 = y1 + R*cos(1.0)
  r3 = circle((x2, y2), R, rgbcolor = 'green')
  show(r1 + r2 + r3, aspect_ratio = 1, axes=false)

The following is Mathematica code for the Euler spiral component (it works directly in wolframalpha.com):

  ParametricPlot[
   {FresnelC[Sqrt[2/\[Pi]] t]/Sqrt[2/\[Pi]],
    FresnelS[Sqrt[2/\[Pi]] t]/Sqrt[2/\[Pi]]},
   {t, -10, 10}]

See also

References

  1. ^ Eugene Hecht (1998). Optics (3rd edition). Addison-Wesley. p. 491. ISBN 0201304252. 

External links